package com.daniel.cms.utils;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.HashMap;

/**
 * Mes返回类
 *
 * @author Daniel
 * @version V1.0
 * @date 2020/4/21 14:19
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
public class Mes implements Serializable {
	/**
	 * 状态
	 */
	@ApiModelProperty(value = "状态", name = "code", dataType = "int", example = "1")
	private Integer code;

	/**
	 * 提示
	 */
	@ApiModelProperty(value = "提示", name = "msg", dataType = "string", example = "success")
	private String message;

	/**
	 * 内容
	 */
	@ApiModelProperty(value = "内容", name = "data", dataType = "object")
	private Object data;


	/**
	 * 成功返回
	 *
	 * @return Mes
	 */
	public static Mes success() {
		return success("");
	}

	/**
	 * 成功返回
	 *
	 * @param data data
	 * @return Mes
	 */
	public static Mes success(Object data) {
		return success("success", data);
	}

	/**
	 * 成功返回
	 *
	 * @param message message
	 * @param data    data
	 * @return Mes
	 */
	public static Mes success(String message, Object data) {
		return new Mes(1, message, data);
	}

	/**
	 * 失败返回
	 *
	 * @return Mes
	 */
	public static Mes error() {
		return error("");
	}

	/**
	 * 失败返回
	 *
	 * @param message message
	 * @return Mes
	 */
	public static Mes error(String message) {
		return error(message, new HashMap<>());
	}

	/**
	 * 失败返回
	 *
	 * @param message message
	 * @param data    data
	 * @return Mes
	 */
	public static Mes error(String message, Object data) {
		return new Mes(0, message, data);
	}
}



